using System;
using System.Collections.Generic;
using BLL.Enum;
using BLL.Model.Apply;
using BLL.Utility;

namespace BLL.Interface.Apply
{
    public interface IApplyInfo
    {
        bool AddApplyInfo(ApplyInfo applyInfo);

        bool AddApplyInfo(IList<ApplyInfo> applyInfoList);

        bool UpdateApplyInfo(ApplyInfo applyInfo);

        bool DeleteApplyInfoById(int id);

        bool DeleteApplyInfoById(IList<int> idList);

        bool DeleteAllApplyInfo();

        IList<ApplyInfo> GetAllApplyInfo();

        ApplyInfo FindApplyInfoById(int id, bool tracking = false);

        IList<ApplyInfo> GetApplyInfoByFilter(dynamic condition, Tuple<string, string> sort, PageInfo page);

        bool ApprovalApply(int id, string approvalComment, int approvalUserId, ApplyProcessStatus status);
    }

}
